import Vue from 'vue'
import './plugins/axios'
import App from './App.vue'
import router from './router'
import store from './store'
import './plugins/element.js'

Vue.config.productionTip = false

// 请求拦截器
axios.interceptors.request.use(
    config => {
        // 从本地存储中获取token，携带在header中
        const token = localStorage.token;
        token && (config.headers.Authorization = 'Bearer' + ' ' + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NDg4NjI3NjksInN1YiI6IjM2YjA0YThhLTVmYjAtMTFlYy04MTc1LTFjNjk3YWM5Y2ZlMyJ9.Oxlm0xg-JnDQCb-UaFQovY-BRTTYmAuedAwn1C1TnJ4');
        return config;
    },
    error => {
      return Promise.error(error);
    }
)

// axios.interceptors.response.use(resp => {
//     if (resp) {
//         switch (resp.data.code) {
//             case 604: //与后台约定登录失效的返回码,根据实际情况处理
//                 localStorage.clear();//删除用户信息
//                 //如果超时就处理 ，指定要跳转的页面(比如登陆页)
//                 // this.message({
//                 //     message: 'token失效,请重新登录!',
//                 //     type: 'warning'
//                 // });
//                 location.href = '/'
//         }
//     }
//     return resp;
// }, error => {
//     return Promise.reject(error.response.data) //返回接口返回的错误信息
// })

// router.beforeEach((to, from, next) => {
//     if(from.fullPath === '/' || from.fullPath === '/addRoom')next()
//     if (localStorage.getItem("token") == null){
//         next({path:'/'});
//     }else {
//         // if (from.fullPath === '/addRoom'){
//         //     next({path: '/addRoom'});
//         // } else if (from.fullPath === '/updateRoom'){
//         //     next({path: '/updateRoom'});
//         // } else {
//         next({path: '/queryRoomInfo'});
//         // }
//     }
// });

// var getRouter   //  用来获取后台拿到的路由
//
// import {generateRoutes} from "./test";
//
// router.beforeEach((to, from, next) => {
//     // 获取token
//     const token = localStorage.getItem('token');
//     // 有token
//     if (token) {
//         if (!getRouter) {  // 不加这个判断，路由会陷入死循环 （如果没有路由）
//             if (!getObjArr('router')) {  // 缓存里没有路由，axios重新获取
//                 axios.get('http://10.10.10.78:1650/getUserMenuAsyncWait').then(res => {
//
//                     console.log("data：", res.data.data)
//
//                     getRouter = res.data.data//后台拿到路由
//                     saveObjArr('router', getRouter) //存储路由到localStorage
//
//                     routerGo(to, next) //  添加路由  执行路由跳转方法
//                 })
//             } else { //  从localStorage拿到了路由
//                 getRouter = getObjArr('router')//拿到路由
//                 routerGo(to, next)  //  //  添加路由  执行路由跳转方法
//             }
//         } else {
//             next()
//         }
//         next();
//     } else {  // 否则是没有
//         // 如果去的是登录页
//         if (to.path == '/') {
//             // 直接放行
//             next();
//         } else {
//             // 如果去的是其他页,跳转到登录页
//             Message.error('请登录以后再操作！')
//             // 跳转到登录页
//             return next({ "path": "/" })
//         }
//     }
// })
//
// // routerGo
// function routerGo(to, next) {
//     // 这里后端返回的数据getRouter  可能不是我们需要的结构，那么需要先有一步转换的步骤
// // 直到转换成前面第一步那种vue标准路由表的格式
//     getRouter = generateRoutes([], getRouter)  // 过滤路由  转换路由的component
//
//     console.log("getRouter：", getRouter)
//
//     // generateRoutes方法是把后端返回的路由数据 转换为前端要的路由结构
//     router.addRoute({ path: '*', redirect: '/404', hidden: true });
//     router.addRoutes(getRouter) //动态添加路由
//     console.log("routers：", router.getRoutes())
//
//     global.antRouter = getRouter //将路由数据传递给全局变量，做侧边栏菜单渲染工作
//     console.log("routers：", global.antRouter)
//
//     next({ ...to, replace: true })
// }
//
// function saveObjArr(name, data) { //localStorage 存储数组对象的方法
//     localStorage.setItem(name, JSON.stringify(data))
// }
//
// function getObjArr(name) { //localStorage 获取数组对象的方法
//     return JSON.parse(window.localStorage.getItem(name));
//
// }

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
